/* eslint valid-jsdoc: "off" */

'use strict';

/**
 * @param {Egg.EggAppInfo} appInfo app info
 */
module.exports = appInfo => {
  /**
   * built-in config
   * @type {Egg.EggAppConfig}
   **/
  const config = exports = {};

  // 设置允许跨域请求
  config.security = {
    csrf: {
      enable: false,
    },
    domainWhiteList: [ '*' ],
  };
  config.cors = {
    origin: '*',
    allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS',
  };

  // use for cookie sign key, should change to your own and keep security
  config.keys = appInfo.name + '_1646921438407_9703';

  // 在这里添加你的中间件
  config.middleware = [ 'errorHandler', 'tokenHandler' ];

  // 中间件执行匹配开启
  config.tokenHandler = {
    match(ctx) { // 只匹配指定路由，反之如果只忽略指定路由，可以用ignore
    // 匹配不需要验证token的路由
      const url = ctx.request.url;
      if (url.startsWith('/user/register') || url.startsWith('/user/login') || url.startsWith('/user/modify_password') || url.startsWith('/email')) {
      // ctx.logger.info('config.tokenHandler:','关闭token验证')
        return false;
      }
      // ctx.logger.info('config.tokenHandler:','开启token验证')
      return true; // 开启中间件，开启token验证
    },
  };

  config.errorHandler = {
    match: '/',
  };

  config.jwt = {
    secret: '140780',	// 自定义token的加密条件字符串，可按各自的需求填写
  };


  // mySQL 配置
  config.mysql = {
    client: {
      // host
      host: 'rm-2zebn8z11h9bw84kwro.mysql.rds.aliyuncs.com',
      // 端口号
      port: '3306',
      // 用户名
      user: 'pub',
      // 密码
      password: 'Yjs@2022',
      // 数据库名
      database: 'yunjisuan1',
    },
    // 是否加载到 app 上，默认开启
    app: true,
    // 是否加载到 agent 上，默认关闭
    agent: false,
  };

  // config.redis = {
  //   client: {
  //     port: 6379, // Redis port
  //     host: '8.130.8.147', // Redis host
  //     db: 0,
  //   },
  // };


  // add your user config here
  const userConfig = {
    // myAppName: 'egg',
  };

  return {
    ...config,
    ...userConfig,
  };
};
